<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script type="text/javascript">
			
			var arr = ["孙悟空","猪八戒","沙和尚"];
			var arr2 = ["白骨精","玉兔精","蜘蛛精"];
			var arr3 = ["二郎神","太上老君","玉皇大帝"];
			
			/*
			 * concat()可以连接两个或多个数组，并将新的数组返回
			 * 	- 该方法不会对原数组产生影响
			 */
			var result = arr.concat(arr2,arr3,"牛魔王","铁扇公主");
			
			/*
			 * join()
			 * 	- 该方法可以将数组转换为一个字符串
			 * 	- 该方法不会对原数组产生影响，而是将转换后的字符串作为结果返回
			 * 	- 在join()中可以指定一个字符串作为参数，这个字符串将会成为数组中元素的连接符
			 * 		如果不指定连接符，则默认使用,作为连接符
			 */
			arr = ["孙悟空","猪八戒","沙和尚","唐僧"];
			
			result = arr.join("@-@");
			/*
			 * reverse()
			 * 	- 该方法用来反转数组（前边的去后边，后边的去前边）
			 * 	- 该方法会直接修改原数组
			 */
			
			arr.reverse();
			
			//console.log(arr);
			
			arr = ["b","d","e","a","c"];
			
			/*
			 * sort()
			 * 	- 可以用来对数组中的元素进行排序
			 * 	- 也会影响原数组，默认会按照Unicode编码进行排序
			 */
			arr.sort();
			//arr.reverse();
			
			/*
			 * 即使对于纯数字的数组，使用sort()排序时，也会按照Unicode编码来排序，
			 * 	所以对数字进排序时，可能会得到错误的结果。
			 * 
			 * 我们可以自己来指定排序的规则
			 * 	我们可以在sort()添加一个回调函数，来指定排序规则，
			 * 		回调函数中需要定义两个形参,
			 * 		浏览器将会分别使用数组中的元素作为实参去调用回调函数
			 * 		使用哪个元素调用不确定，但是肯定的是在数组中a一定在b前边
			 * 	- 浏览器会根据回调函数的返回值来决定元素的顺序，
			 * 		如果返回一个大于0的值，则元素会交换位置
			 * 		如果返回一个小于0的值，则元素位置不变
			 * 		如果返回一个0，则认为两个元素相等，也不交换位置
			 * 
			 * 	- 如果需要升序排列，则返回 a-b
			 * 		如果需要降序排列，则返回b-a
			 */
			arr = [5,4,2,1,3,6,8,7];
			
			arr.sort(function(a,b){
				
				//前边的大
				/*if(a > b){
					return -1;
				}else if(a < b){
					return 1;
				}else{
					return 0;
				}*/
				
				//升序排列
				//return a - b;
				
				//降序排列
				return b - a;
				
			});
			
			console.log(arr);
			
		</script>
	</head>
	<body>
		
	</body>
</html>
